// pages/list1/list1.js
import Dialog from './../../dist/dialog/dialog';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    show: false,
    option1: [
      { text: '全部商品', value: 0 }
    ],
    option2: [
      { text: '默认排序', value: 'a' },
      { text: '价格排序', value: 'b' },
      { text: '销量排序', value: 'c' },
    ],
    value1: 0,
    value2: 'a',
    goodsList:[],
    optVal1: 0, // 类别
    optVal2: 'a', // 排序
    page:1,
    limit:10,
    shoppingData: [],
    shoppingNum: 0,
    shoppingPrice: '0.00'
  },

  showPopup () {
    this.setData({
      show: !this.data.show
    })
  },
  onClose () {
    this.setData({
      show: false
    })
  },
  addShopping (e) {

    let islogin = wx.getStorageSync('isLogin')

    if (!islogin) {
      wx.showToast({
        title: '您尚未登录，请先去登录',
        icon: 'none',
        duration: 1000,
        success: ()=>{
          setTimeout(()=>{
            wx.navigateTo({
              url: '/pages/login/login',
            })
          },2000)
        }
      })
     
    }else{

    // 判断购物车是否有当前数据
    // wx.showToast({
    //   title: '加入购物车成功',
    //   icon: 'success',
    //   duration: 2000
    // })
    console.log(e.target.dataset.id)
    wx.request({
      url: 'http://localhost:3000/shoppingCart?id='+e.target.dataset.id,
      method: 'get',
      success: ({data})=>{
        // console.log(data)
        let hasData = !(data.length == 0)

        let goodsData = this.data.goodsList.filter(item =>item.id == e.target.dataset.id)
        // console.log(hasData,goodsData[0])
        if (!hasData) {
          wx.request({
            url: 'http://localhost:3000/shoppingCart',
            method: 'post',
            data: {
              ...goodsData[0],
              num: 1
            },
            success: ({data})=>{
              wx.showToast({
                title: '加入购物车成功',
                icon: 'success',
                duration: 2000
              })
              this.getShoppingData()
            }
          })
        }else{
          // 修改  
          console.log(data[0])
          wx.request({
            url: 'http://localhost:3000/shoppingCart/' + e.target.dataset.id,
            method: 'put',
            data: {
              ...data[0],
              num: data[0].num+1
            },
            success: ({data})=>{
              this.getShoppingData()
            }
          })
        }
      }
    })
  }
  },
  changeShopping(e){
    // console.log(e)
    let goodsData = this.data.goodsList.filter(item =>item.id == e.target.dataset.id)
    wx.request({
      url: 'http://localhost:3000/shoppingCart/' + e.target.dataset.id,
      method: 'put',
      data: {
        ...goodsData[0],
        num: e.detail
      },
      success: ({data})=>{
        this.getShoppingData()
      }
    })
  },

  menuChange (val) {

    // console.log(val.detail)
    this.setData({
      page: 1,
      optVal1: val.detail
    })
    this.getData()
  },
  sortChange (val) {
    this.setData({
      page: 1,
      optVal2: val.detail
    })
    this.getData()
  },
  getData (x) {  // 获取商品的方法
    
    // let url = type ==0 ? 'http://localhost:3000/goods' : 'http://localhost:3000/goods?type=' + type

    // 全部商品 无需排序  0 a  http://localhost:3000/goods
    // 全部商品  需要排序 0 不是a  http://localhost:3000/goods?_sort=price&_order=asc

    // 分类商品  无需排序 不是0  a  http://localhost:3000/goods?type=1
    // 分类商品   需要排序 不是0  不是a  http://localhost:3000/goods?type=1?_sort=price&_order=asc


    // http://localhost:3000/goods?a=b&c=d&e=f

    let url = ''

    // 全部商品 无需排序
    if (this.data.optVal1 == 0 && this.data.optVal2 == 'a') {
      url = 'http://localhost:3000/goods'
    }

    // 全部商品 需要排序
    if (this.data.optVal1 == 0 && this.data.optVal2 != 'a') {
      url  = this.data.optVal2 == 'b' ? 'http://localhost:3000/goods?_sort=price&_order=asc' : 'http://localhost:3000/goods?_sort=orderNum&_order=asc'
    }

    // 分类商品 无需排序
    if (this.data.optVal1 != 0 && this.data.optVal2 == 'a') {
      url = 'http://localhost:3000/goods?type=' + this.data.optVal1
    }

    // 分类商品 需要排序
    if (this.data.optVal1 != 0 && this.data.optVal2 != 'a') {
      url  = this.data.optVal2 == 'b' ? `http://localhost:3000/goods?type=${this.data.optVal1}&_sort=price&_order=asc` : `http://localhost:3000/goods?type=${this.data.optVal1}&_sort=orderNum&_order=asc`
    }
    
    url == 'http://localhost:3000/goods' ? (url = `${url}?_page=${this.data.page}&_limit=${this.data.limit}`) : (url = `${url}&_page=${this.data.page}&_limit=${this.data.limit}`)




    wx.request({
      url: url,
      method: 'get',
      success: (data) => {
        if (x) {
          this.setData({
            goodsList: [...this.data.goodsList,...data.data]
          })
        }else{
          this.setData({
            goodsList: data.data
          })
        }
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  getShoppingData () { // 获取购物者的数据
    wx.request({
      url: 'http://localhost:3000/shoppingCart',
      method: 'GET',
      success: ({data}) => {
        let num = 0;
        let price = 0;
        data.forEach(item =>{
          num = num+item.num
          price = ((price*10) + (item.num * item.price*10))/10
        })
        this.setData({
          "shoppingData": data,
          "shoppingNum": num,
          "shoppingPrice": price
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    //  get   http://localhost:3000/goods
    
    // 调用 获取商品的方法
    // this.getData()

    // this.getShoppingData()

    // // 请求类型
    // wx.request({
    //   url: 'http://localhost:3000/type',
    //   method: 'get',
    //   success: (data) => {
    //     console.log('请求到的数据',data.data)

    //     // 要往option1中追加数据
    //     this.setData({
    //       option1: [
    //         ...this.data.option1,
    //         ...data.data
    //       ]
    //     })
    //     // console.log(this.data.goodsList)
    //   }
    // })
  },
  delShopping (e) {
    console.log(e,11111)
    Dialog.confirm({
      message: '删否？',
    })
      .then(() => {
        wx.request({
          url: 'http://localhost:3000/shoppingCart/' + e.target.dataset.id,
          method: 'DELETE',
          success: ()=>{
            this.getShoppingData()

          }
        })
      })
      .catch(() => {
        // on cancel
      });
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getData()
    console.log(this.selectComponent('.delShopping3'))
    this.getShoppingData()

    // 请求类型
    wx.request({
      url: 'http://localhost:3000/type',
      method: 'get',
      success: (data) => {
        console.log('请求到的数据',data.data)

        // 要往option1中追加数据
        this.setData({
          option1: [
            ...this.data.option1,
            ...data.data
          ]
        })
        // console.log(this.data.goodsList)
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.setData({
      page: this.data.page + 1
    })
    this.getData('x')
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})